This invention relates to communications systems and networks; and more particularly, the invention relates to reducing the required size of sequence numbers used in resequencing packets. This invention is especially useful in the design and operation of packet switches, but is not limited to this environment.
The communications industry is rapidly changing to adjust to emerging technologies and ever increasing customer demand. This customer demand for new applications and increased performance of existing applications is driving communications network and system providers to employ systems having greater speed and capacity (e.g., greater bandwidth). In trying to achieve these goals, a common approach taken by many communications providers is to use packet switching technology. Packet technology typically allows many information types to be transmitted over the same transmission lines and using the same packet switching systems and devices.
As used herein, the term xe2x80x9cpacketxe2x80x9d refers to packets of all types, including fixed length cells and variable length packets. Moreover, these packets may contain one or more types of information, including, but not limited to, voice, data, video, and audio information. Furthermore, the term xe2x80x9csystemxe2x80x9d is used generically herein to describe any number of components, packet switch elements, packet switches, networks, computer and/or communication devices or mechanisms, or combinations thereof.
Consumers and designers of these systems typically desire high reliability and increased performance at a reasonable price. A commonly used technique for helping to achieve this goal is for these systems to provide multiple paths between a source and a destination. Packets of information are then dynamically routed and distributed among these multiple paths. It is typically more cost-effective to provide multiple slower rate links or switching paths, than to provide a single higher rate path. Such designs also achieve other desired performance characteristics.
An artifact of using dynamic routing is the need to resequence each of the streams of packets dynamically routed through a packet switch back into their original order. One known technique for dynamically routing and resequencing streams of packets is to add a sequence number to each packet and then to place packets in sequential order based on these added sequence numbers. Separate sequence numbers are required for each switch input-output pairing. For example, each input interface of the packet switch must keep a separate sequence number counter for each output of the packet switch; and each output interface of the packet switch must keep a separate counter for each input of the packet switch. This technique is simple, but it requires a substantial amount of resources for lengthy buffers and sequence number counters. The resources required for these buffers and counters must be sufficient to distinguish the order of the packets even when worst cast delay differentials between paths occur. The size of these counters and the number and size of the buffers required for this resequencing technique are large, and it is difficult to place a bound on the resources required to implement such a system. Desired are improved methods and systems for dynamically routing and resequencing packets in a packet switch, especially those methods and systems which place a bound on the size requirements of sequence numbers.
Controlling the distribution of packets across the multiple paths between input and output pairs can be used to optimize the resequencing function and to improve performance. Two commonly used techniques of distributing traffic among the multiple paths between a source and destination are a pure round robin distribution and a pure random distribution. Both of these techniques fail to consider the destination or a downstream point in the network when distributing the traffic. The pure round robin technique repetitively sequences through each of the multiple paths in the same order for traffic without regard to a packet""s destination. The pure random distribution technique randomly selects one of the multiple paths without regard to a packet""s destination. However, such techniques are deficient in their resultant throughput. Desired are improved methods and systems for achieving greater throughput.
A packet switch has multiple in-order delivery interconnection elements. Coupled to the multiple in-order delivery interconnection elements are multiple packet switch input interfaces and multiple packet switch output interfaces. Each packet switch interface may include a packet distributor to distribute packets in accordance with a distribution scheme across the multiple in-order delivery interconnection elements and a packet switch sequencer to add a sequence number within a sequence number range to packets to be sent across the plurality of in-order delivery interconnection elements, the range of the sequence numbers being dependent on the packet distribution scheme. Each packet switch output interface may included a packet switch resequencer.